ホームに戻る
出典 :
WPFのビヘイビア #C# - Qiita ビヘイビア(Behavior)の作り方 - かずきのBlog@hatena WPFの添付ビヘイビア #C# - Qiita 【WPF】BehaviorsでイベントをCommandへバインドする方法(MVVM)
関連 :
MVVMパターン MVVM Toolkit 依存関係プロパティ 添付プロパティ
目次 :

ビヘイビア(Behavior)とは

「振舞い」の日本語が示すように、ユーザインタフェースの「動作」を規定したクラス。 MVVM以前はコードビハインドに記述していたようなユーザ操作の購読や表示に関わるプロパティを独立させることで、コントロールの振舞いのみを再利用することができる。 本記事はMVVM Toolkitに含まれる BlendBehavior について記す。 (基底クラスは Microsoft.Xaml.Behaviors.Behavior<TTarget> 。)

ビヘイビアの例 : TextBox への文字入力を制限

入力できる文字を TextBox ごとに切り替える場合、ビヘイビアを用いないのであれば、それぞれの TextBox に PreviewTextInput や PreviewKeyDown のイベントを実装する方法が考えられる。 ビヘイビアを用いることで、これらの「(イベントに対する)振舞い」の部品化が可能となる。
ビヘイビアの本体 : RestrictInputForTextBoxBehavior.cs
画像 BlendBehavior は Microsoft.Xaml.Behaviors.Behavior<TTarget> を継承して作成する。TTarget は適用先(コントロール)の型(ここでは TextBox )である。 BlendBehavior には依存関係プロパティを実装でき、データバインディングのターゲットとすることができる。 ( ViewModel の状況に応じてビヘイビアの振舞いを切り替えたい場合に有効。) 必須の手順としては、OnAttached() メソッドのオーバーライドが挙げられる。これはコントロールの生成時にコールされ、ビヘイビアをコントロールに適用する際の処理である。
ビヘイビアの適用先 : ######.xaml (UserControl)
画像 ビヘイビアを適用するコントロールに Interaction.Behaviors タグを記述し、その中に適用したいビヘイビアを記述する。 (複数のビヘイビアを列記できる。)

添付ビヘイビア

BlendBehavior とは異なり、ビヘイビアを添付プロパティとして実装する手法である。詳細はリンク先を参照。